﻿// 5556. 牛的语言学.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/5559/

牛语单词通过以下规则构造：

牛语单词仅由小写字母构成。
牛语单词的具体结构为：词根+若干个（0
 个或更多）后缀，其中：
词根为长度大于 4
 的字符串。
后缀为长度 2
 或 3
 的字符串。
在构成单词时，不允许连续两次（或更多次）添加同一后缀。
给定一个已经构造好的牛语单词 s
，请你根据牛语单词的构造规则，找到该单词的所有可能后缀。

例如，如果给定单词为 cbcaabaca
，则它可能的构造方式为 cbcaabaca
、cbcaaba+ca
、cbcaab+aca
、cbcaa+ba+ca
，因此，它的所有可能后缀为 aca,ba,ca
。

输入格式
一个由小写字母构成的字符串 s
。

输出格式
第一行输出整数 k
，表示单词 s
 的所有可能后缀的数量。

接下来 k
 行，按照字典序每行输出一个可能后缀。

数据范围
前 3
 个测试点满足 5≤|s|≤10
。
所有测试点满足 5≤|s|≤104
。

输入样例1：
cbcaabaca
输出样例1：
3
aca
ba
ca
输入样例2：
abaca
输出样例2：
0
*/
int main()
{
    std::cout << "Hello World!\n";
}

 